2007年07月21日
川俣晶の縁側ソフトウェア技術雑記 total 6837 count

DrawItemEventArgs.Index プロパティは-1になることがある

Written By: 川俣 晶連絡先

 .NET FrameworkクラスライブラリのSystem.Windows.Forms名前空間のDrawItemEventArgs.Indexプロパティの値は-1になることがあります。

 具体的に言うと、リストボックスをオーナードローにするとDrawItemイベントでインデックスが-1の描画要求が来る可能性がある……ということです。

 なぜこのような要求が来るのかというと、リストボックスにアイテムが1つも入っていない場合でも、空の枠を描画する必要があるためです。

 少なくとも日本語版のMSDNのドキュメントで明示的な言及が見られなかったので、ちょっとメモ。

 ちなみに、ドキュメントに載っているサンプルソースは、switch文で値を仕分けしていて-1の場合は単純にスルーするので正常に動きます。